今天要介紹的是Fully Connected Layer(全連接層),全連接層通常都在神經網路的最後面,並且通常會有一到兩層,看下圖。
在全連結層前的動作是在做特徵擷取,到了這裡則是真正決定結果是甚麼的時候了,上圖中的左邊每一個小框框可以想成是每一種特徵,而其中的數字則是這個特徵對某個結果的重要程度,稱之為權重,例如A特徵對應到第一個格子,B特徵對應第二個格子,A對叉叉結果的權重為0.9,B為0.65,意思也就是A的影響比B還要大。
聽不太懂的話,也可以換個說法,把全連結層想像在投票一樣,只不過每個人的票不等值,當今天A投給叉叉的話,叉叉會得到0.9票,B投給叉叉,叉叉得0.65票,所以今天A投給叉叉比B投給叉叉影響還要大(模型實際中不一定是如此計算)。
總結來說,全連結層就是最後的分類器,將前面所擷取出來的特徵,經過權重的計算之後,來辨識出這個所輸入的圖像到底屬於哪一個分類。
也許會有人好奇,這些權重怎麼來的?這是因為CNN中有個Backpropagation的技巧可以解決這個問題,這也是為甚麼模型需要經過大量訓練的原因之一,當模型在進行訓練的時候,模型會慢慢調整他的參數(權重)、特徵擷取,使得模型輸出的結果會符合實際結果。
至此,一個基本的CNN就已經成形,但很多提出的CNN模型中,都有新增許多的技巧來增加模型的準確率、訓練速度,減少計算量等,在之後的文章中提到時會再介紹。
資料來源:
https://brohrer.mcknote.com/zh-Hant/how_machine_learning_works/how_convolutional_neural_networks_work.html
https://vinodsblog.com/2018/10/15/everything-you-need-to-know-about-convolutional-neural-networks/